IDCMP Flags Riportiamo i flag indicanti i diversi eventi di input; quasti flag vengono usati nel campo IDCMPFlags della finestra, nel tag WA_IDCMP nella funzione OpenWindowTagList e come identificatori del tipo di evento di un messaggio ricevuto; per specificare più eventi utilizzare l'operatore logico OR (|); esempio: ModifyIDCMP(finestra,IDCMP_MOUSEBUTTONS|IDCMP_GADGETUP); IDCMP_REQVERIFY avvisa l'applicazione che un requester sta per aprirsi nella finestra, ed il sistema attende che l'applicazione risponda prima di aprirlo IDCMP_REQCLEAR avvisa l'applicazione quando un requester viene rimosso dalla finestra, in modo che il programma possa rinfrescare correttamente il suo contenuto IDCMP_REQSET avvisa l'applicazione che un requester è stato appena aperto nella finestra; questo evento è diverso da IDCMP_REQVERIFY in quanto avvisa quando il requester è stato oramai aperto; attenzione a rinfrescare o disegnare nella finestra solo quando tutti i requester sono stati chiusi (vale a dire per ogni IDCMP_REQSET è stato spedito un IDCMP_REQCLEAR) IDCMP_MENUVERIFY questo evento avvisa l'applicazione che il sistema sta per attivare la barra menù o i menù; può necessitare essere avvisati se si stanno eseguendo dei disegni "critici" direttamente su schermo; vale a dire devono essere ultimati prima di qualunque altro intervento; il sistema attende che l'applicazione risponda, prima di attivare i menù IDCMP_SIZEVERIFY avvisa l'applicazione che l'utente sta per cambiare la dimensione della finestra (ovviamente la finestra deve avere il gadget di cambiamento dimensione), permettendo di ultimare operazioni "critiche"; il sistema attenderà la risposta del messaggio prima di procedere al cambiamento di grandezza Attenzione per tutti gli eventi "VERIFY" (IDCMP_MENUVERIFY, IDCMP_SIZEVERIFY ecc.): rispondere il prima possibile al messaggio in quanto l'utente viene bloccato ed attende (e il multitasking va a farsi una passeggiata); non utilizzare MAI funzioni AmigaDOS mentre è attivo un evento "VERIFY"; dalla V36 del sistema se l'applicazione non risponde per un certo periodo di tempo specificato dall'utente, l'evento "VERIFY" viene interrotto. Conviene utilizzare questi eventi con parsimonia, eliminando l'avviso quando non serve, con ModifyIDCMP IDCMP_NEWSIZE avvisa l'applicazione quando la finestra ha subito un cambio di dimensione; vedere anche IDCMP_CHANGEWINDOW IDCMP_REFRESHWINDOW avvisa l'applicazione che la finestra ha bisogno di essere rinfrescata (quando passa da dietro un gruppo di finestre in avanti o quando viene ingrandita); necessita quando il rinfresco del contenuto della finestra è gestito dall'applicazione. Questo evento ha senso solo con finestre con refresh WFLG_SIMPLE_REFRESH e WFLG_SMART_REFRESH IDCMP_MOUSEBUTTONS avvisa l'applicazione che uno dei pulsanti del mouse è stato premuto (a meno che, questo non significhi qualcosa di particolare come la pressione di un gadget) IDCMP_MOUSEMOVE funziona solamente se è stato impostato il flag WFLG_REPORTMOUSE della finestra o il flag GACT_FOLLOWMOUSE in uno dei gadgets. Allora ogni volta che il mouse si mouve, verrà inviato questo messaggio. IDCMP_GADGETDOWN avvisa che l'utente ha selezionato un gadget, che tu hai creato con il flag GACT_IMMEDIATE. IDCMP_GADGETUP avvisa che l'utente ha rilasciato un gadget, che tu hai creato con il flag GACT_RELVERIFY IDCMP_MENUPICK l'utente ha probabilmente selezionato un'opzione del menù IDCMP_CLOSEWINDOW avvisa che l'utente ha selezionato il gadget di sistema di chiusura della finestra IDCMP_RAWKEY avvisa che l'utente ha premuto un tasto; questo evento riporta il codice assoluto (RAW) del tasto; il codice del tasto è passato nel campo Code dell'IntuiMessage IDCMP_VANILLAKEY avvisa che l'utente ha premuto un tasto e ritorna il codice di quest'ultimo; però il codice viene prima trasformato sequendo la keymap in formato ANSI. Tasti come HELP non possono essere gestiti con IDCMP_VANILLAKEY (usare IDCMP_RAWKEY). Dalla V36 del sistema se hai impostato sia IDCMP_RAWKEY che IDCMP_VANILLAKEY il sistema avviserà con un evento IDCMP_RAWKEY solo per quei tasti speciali; per tutti gli altri tasti invierà IDCMP_VANILLAKEY unendo così i vantaggi dell'uno e dell'altro IDCMP_INTUITICKS viene inviato questo messaggio approssimativamente 10 volte al secondo; può servire per temporizzazione per alcuni operazioni (come il double-click) IDCMP_DELTAMOVE fornisce i valori delta X/Y di movimento del mouse; può servire a controllare l'accelerazione del mouse; se vengono impostati contemporaneamente IDCMP_MOUSEMOVE e IDCMP_DELTAMOVE, si otterranno messaggi IDCMP_MOUSEMOVE con i valori delta x e y nei campi MouseX e MouseY dell'IntuiMessage IDCMP_NEWPREFS avvisa che sono state cambiate le preferenze di sistema IDCMP_ACTIVEWINDOW e IDCMP_INACTIVEWINDOW avvisano che la finestra viene attivata o disattivata rispettivamente IDCMP_DISKINSERTED e IDCMP_DISKREMOVED avvisano che un disco è stato inserito o rimosso rispettivamente IDCMP_IDCMPUPDATE nuovo dalla V36, usato come un canale di comunicazione da gadget custom e boopsi alla tua pplicazione IDCMP_CHANGEWINDOW nuovo dalla V36, avvisa che le dimensioni o la posizione della finestra vengono cambiate dall'utente o da una funzione intuition IDCMP_MENUHELP nuovo dalla V37; se specifichi WA_MenuHelp all'apertura della finestra, quando l'utente preme il tasto HELP mentre seleziona un menù, viene inviato questo evento in modo che l'applicazione possa fornire un aiuto all'utente IDCMP_GADGETHELP nuovo dalla V39 del sistema. Se attivi il gadget help della tua finestra usando HelpControl(), Intuition spedirà IDCMP_GADGETHELP quando il mouse passa sopra determinati gadget della tua finestra